在 PHP 中有一些危險函式若無處理得當,將會導致代碼執行漏洞出現,其常見的危險函式為:
popen()、system()、passthru()、exec() 可以執行系統命令
eval() 可以執行 PHP code
實際例子發生在 CVE-2011-2505 ,是 phpMyAdmin 3.3.10.2 及 3.4.3.1 發生的一個變量覆蓋漏洞,因為將 session 保存在 server 端並常駐在記憶體,並在ConfigGenerator.class.php 賦予一個變量時,並未做妥善檢查,造成所有使用到那變量的程式碼都變成有危險疑慮的代碼。
這個問題其實是我們一開始講的輸入驗證的問題,不過在此處確實可以達成代碼執行,因此仍要有所防備。 詳細的 CVE-2011-2505 可以觀看我的另一篇主題:
http://ithelp.ithome.com.tw/ironman7/app/article/all/recent/10160880